package com.hspedu.outputstream;


import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

/**
 * @Author Stringzhua
 * @Date 2024/3/16 21:42
 * description:演示ObjectOutputStream的使用,完成数据的序列化
 */
public class ObjectOutputStream_ {
    public static void main(String[] args) throws Exception {
        //序列化后,保存的文件格式,不是纯文本,而是按照它的格式保存
        String filePath = "e:\\qiyeke\\filecontroller\\data.dat";

        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filePath));

        //序列化数据到e:\data.dat
        oos.writeInt(100);//int-->Integer(实现了Serializable接口)
        oos.writeBoolean(true);//boolean-->Boolean(实现了Serializable接口)
        oos.writeChar('a');//char-->Char(实现了Serializable接口)
        oos.writeDouble(9.5);//double-->Double(实现了Serializable接口)
        oos.writeUTF("爪爪吃蒸饺");//String
        //保存一个dog对象
        oos.writeObject(new Dog("旺财", 10, "日本", "白色"));//NotSerializableException

        oos.close();
        System.out.println("数据保存完毕(序列化形式)");
    }
}